package com.dbms.parser.ast;

import java.util.List;

/**
 * OrderByNode (排序节点) 代表了 `SELECT` 语句中的 `ORDER BY` 子句的抽象语法树 (AST) 结构。
 * 它存储了用于排序的列以及排序的顺序（升序或降序）。
 */
public class OrderByNode extends AstNode {
    /**
     * 用于排序的列名列表。SQL 支持按多个列排序，例如 `ORDER BY dept, salary DESC`。
     */
    private final List<String> columns;
    /**
     * 排序的顺序，通常是 "ASC" (升序) 或 "DESC" (降序)。
     */
    private final String order;

    public OrderByNode(List<String> columns, String order) {
        this.columns = columns;
        this.order = order;
    }

    /**
     * 获取排序列的列表。
     * @return 列名字符串的列表
     */
    public List<String> getColumns() {
        return columns;
    }

    /**
     * 获取排序顺序。
     * @return "ASC" 或 "DESC"
     */
    public String getOrder() {
        return order;
    }
}